package All;

import graphviz.VisiteurGraphique;
import graphviz.MetaModel.ElementDot;
import graphviz.parseur.DotToPng;
import graphviz.parseur.MetaModelGraphizToDot;

import java.io.File;
import java.util.List;

import languageObject.VisiteurObject;
import languageObject.metatModel.ElementObject;
import languageObject.parseur.Java;

import org.junit.Test;

import xml.LecteurXml;
import xml.parseur.XmlGraphviz;
import xml.parseur.XmlObject;
import constantes.ConstanteLien;

public class Global {

	@Test
	public void testAll() 
	{
		LecteurXml xml = new XmlObject(new File(ConstanteLien.ENTREE_XML)); //parser le metaModelObject
		List<ElementObject> listObject = xml.lecture();
		
		VisiteurObject visiteur = new Java(ConstanteLien.SORTIE_JAVA); //creation des fichier Java
		for(int i = 0; i < listObject.size(); ++i)
		{
			listObject.get(i).visite(visiteur);
		}
		
		xml = new XmlGraphviz(new File(ConstanteLien.ENTREE_XML)); //perser le metaModelDot
		List<ElementDot> listDot = xml.lecture();
				
		VisiteurGraphique meta = new MetaModelGraphizToDot(new File(ConstanteLien.SORTIE_DOT)); //visite du metamodel
		for(int i = 0; i < listDot.size(); ++i)
		{
			listDot.get(i).visite(meta);
		}
		meta.ecriture(); //creation du Dot

		DotToPng png = new DotToPng();
		
		png.ecritureByDot(ConstanteLien.SORTIE_DOT, new File(ConstanteLien.SORTIE_PNG)); //creation de l'image
	}

}
